package www.dashu.com.config;

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * 全局跨域配置
 * 注意：前端从网关进行调用时需要配置
 */
@Configuration
public class GlobalCorsConfig
{

//    @Bean
//    public FilterRegistrationBean corsFilter() {
//        //1.添加CORS配置信息
//        CorsConfiguration config = new CorsConfiguration();
//        //1) 允许的域,不要写*，否则cookie就无法使用了
////        config.addAllowedOrigin("http://localhost:8081");
////        config.addAllowedOrigin("http://192.168.59.168:8081");
//        config.addAllowedOrigin("*");
//        //2) 是否发送Cookie信息
//        config.setAllowCredentials(true);
//        //3) 允许的请求方式
//        config.addAllowedMethod("OPTIONS");
//        config.addAllowedMethod("HEAD");
//        config.addAllowedMethod("GET");
//        config.addAllowedMethod("PUT");
//        config.addAllowedMethod("POST");
//        config.addAllowedMethod("DELETE");
//        config.addAllowedMethod("PATCH");
//        config.setMaxAge(3600L);
//        // 4）允许的头信息
//        config.addAllowedHeader("*");
//
//        //2.添加映射路径，我们拦截一切请求
//        org.springframework.web.cors.UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
//        configSource.registerCorsConfiguration("/**", config);
//
//        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(configSource));
//        bean.setOrder(0);//利用FilterRegistrationBean，将拦截器注册靠前,避免被其它拦截器首先执行
//        return bean;
//    }

}
